package com.tyc.shiro.util;

import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.util.Base64;

/**
 * 生成用户密码盐值
 *
 * @author tyc
 * @version 1.0
 * @date 2023-12-22 10:17:13
 */
public class SaltGenerator {
    public static String generateSalt() {
        // 定义盐值的长度，可以根据需要调整
        int saltLength = 16;

        // 生成一个安全的随机数生成器
        SecureRandom secureRandom;
        try {
            secureRandom = SecureRandom.getInstanceStrong();
        } catch (NoSuchAlgorithmException e) {
            // 异常处理，可以根据实际情况处理
            throw new RuntimeException("Error while generating salt", e);
        }

        // 生成随机的盐值
        byte[] salt = new byte[saltLength];
        secureRandom.nextBytes(salt);

        // 将盐值转换为Base64字符串
        return Base64.getEncoder().encodeToString(salt);
    }

    public static void main(String[] args) {
        // 生成盐值
        String salt = generateSalt();
        System.out.println("Generated Salt: " + salt);
    }
}
